<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/model/Service/Service.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/model/DAO/DAOManager.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Person.php';

/**
 * Класс, отвечающий за работу с должностями
 */
interface PostService extends Service {
	
	public function __construct($daoManager){
		parent::__construct($daoManager);
		parent::createDAO("PostDAO");
	}
	
	/**
	 *  Сохранить должность
	 * @param Post $post Сохраняемая должность
	 */
	public function save($post){
		if($post->getIdentity() == null){
			return $this->dao->create($post);
		}else{
			return $this->dao->update($post);
		}
	}
	
	/**
	 * Прочитать должность
	 * @param int $identity Идентефикатор должности
	 */
	public function read($identity){
		return $this->dao->read($identity);
	}
	
	/**
	 * Удалить должность
	 * @param int $identiy Идентефикаор удаляемой должности
	 */
	public function delete($identiy){ 
		return $this->dao->delete($identiy);
	}
	
	/**
	 * Получение спика должностей
	 */
	public function getAll(){
		return $this->dao->getAll();
	}
	
	/**
	 * Получить список незанятых должностей
	 * @param Person $person Сотрудник
	 */
	public function getFreePosts(Person $person){
		return $this->dao->getFreePosts($person);
	}
	
	/**
	 * Получить список уникальных должностей
	 */ 
	public function getUniquePosts(){
		return $this->dao->getUniquePosts();
	}
	
}
?>